Conventional techniques for painting with a computer are generally implemented using at least one of two approaches: a procedural approach and a simulation approach. Procedural approaches are computationally fast but limit the lifelike painting effects that can be simulated. Procedural approaches typically involve the interpolation of fixed two-dimensional (2D) images, which is referred to as “stamping”. Stamping, however, may fail to model lifelike interaction of a virtual paintbrush with virtual paint.
In contrast, simulation approaches can be described as simulating liquids on canvas as 2D height fields, or as simulating seeping, percolation, and dispersion behaviors of virtual paint inside a virtual canvas. However, most simulation approaches simply inject liquids into canvas, and stir the liquid using a fixed brush shape. Due to these limitations, conventional techniques for simulating the interaction between a virtual paintbrush, virtual paint, and a virtual canvas may not do so in a realistic manner.